iT邦幫忙

2024 iThome 鐵人賽

DAY 13
0
佛心分享-IT 人自學之術

走在Pandas資料操縱與分析的路上持續前進系列 第 13

DAY13 Pandas使用loc、iloc的:語法取得指定範圍列資料

  • 分享至 

  • xImage
  •  

今天要來講解:的用法,
在Pandas有著範圍的意義,
簡單來說,
使用:就是決定取得資料範圍的用法,
在前面(DAY4 Pandas用index取得指定資料)也有提到過,
而今天是要loc、iloc語法搭配:一起做使用。

範例

同樣的先建立範例資料,
已經很熟悉的朋友可以直接跳過這段向下段看。

首先,先建立一個DataFrame結構的資料,
或是有匯入的資料轉成DataFrame結構也行,
這次的資料結構以JSON格式做轉換,
以資料中的ABC作為索引。
這邊為了方便對照,先印出完整的資料來看。

scoresData = {
    "Chinese":
    {
        "A": 54,
        "B": 76,
        "C": 66,
    },
    "English":
    {
        "A": 61,
        "B": 97,
        "C": 75,
    },
    "Math":
    {
        "A": 71,
        "B": 82,
        "C": 67,
    }
}
scores = pd.DataFrame(scoresData)
print(scores)

印出資料如下,
對照可看出A、B、C三人在三個科目上的成績分別是多少。

   Chinese  English  Math
A       54       61    71
B       76       97    82
C       66       75    67
使用loc的:語法

使用loc的:語法如下,
在資料後加上.loc["起始索引值(包含)":"結束索引值(包含)"]
使用方式如下,
這邊選擇取得索引值BC的資料。

print(scores.loc['B':'C'])

印出資料如下,
資料結構為DataFrame

   Chinese  English  Math
B       76       97    82
C       66       75    67

這邊要注意的是,
可以到看到列出的資料是:前後的資料都包含的。

使用iloc的:語法

使用iloc的:語法如下,
在資料後加上.iloc[起始index(包含),結束index(不包含)]
這邊要特別注意與loc不同的是,
iloc結束的索引值是不包含在內的。
使用方式如下,
這邊選擇取得索引值起始index1結束index2的資料,
對照上述語法就是
取得資料**第二列(包含)第三列(不包含)**的資料,
換句話說就是會列出第二列的資料。

print(scores.iloc[1:2])

印出資料如下,
資料結構為DataFrame

   Chinese  English  Math
B       76       97    82
用:語法(複習DAY4)

這邊順便來簡單複習一下單純:的用法,
使用方式如下。

print(scores[1:2])

印出資料如下,
資料結構為DataFrame

   Chinese  English  Math
B       76       97    82

可以看出使用結果和iloc的:語法是一樣的,
因為在這情況下,
兩者都是使用index來取得對應資料所致。

今日結語

希望今天有對:語法有更深刻的記憶,
若前後沒加任何數字僅有:表示全部
若後面加上數字,例如:2,表示從最前面index為2(不包含)的資料;
若前面加上數字,例如2:,表示從
index為2(包含)最後面
的資料;
希望大家都能活用:語法。


上一篇
DAY12 Pandas使用loc、iloc語法取得指定列與欄資料
下一篇
DAY14 Pandas以單一條件判斷資料
系列文
走在Pandas資料操縱與分析的路上持續前進30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言